using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;


namespace SsbTransportTestSuite.Clients
{
    [DataContract(Namespace = "http://ssbtransport/tests")]
    public enum OrderStatus
    {
        [EnumMember]
        New,
        [EnumMember]
        Confirmed,
        [EnumMember]
        Prepared,
        [EnumMember]
        Shipped
    }
    [ServiceContract(Namespace = "http://ssbtransport/tests")]
    public interface IOrderNotification
    {
        [OperationContract(IsOneWay = true)]
        void ConfirmOrder();
        [OperationContract(IsOneWay = true)]
        void UpdateOrderStatus(OrderStatus status);

    }
}
    

namespace SsbTransportTestSuite.Services
{
    [ServiceContract(Namespace="http://ssbtransport/tests")]
    public interface IOrderProcessing
    {
        [OperationContract(IsOneWay = true)]
        void BeginOrder(Order order);
        [OperationContract(IsOneWay = true)]
        void AddOrderItem(OrderItem item);
        [OperationContract(IsOneWay = true)]
        void EndOrder();
    }
    [ServiceContract(Namespace = "http://ssbtransport/tests")]
    public interface IOrderNotification
    {
        [OperationContract(IsOneWay = true)]
        void ConfirmOrder();
        [OperationContract(IsOneWay = true)]
        void UpdateOrderStatus(OrderStatus status);

    }
    [DataContract(Namespace = "http://ssbtransport/tests")]
    public enum OrderStatus
    {
        [EnumMember]
        New,
        [EnumMember]
        Confirmed,
        [EnumMember]
        Prepared,
        [EnumMember]
        Shipped
    }
    [Serializable]
    [DataContract(Namespace = "http://ssbtransport/tests")]
    public class Order
    {
        [DataMember()]
        public Guid OrderId;
        [DataMember(IsRequired=true)]
        public string CustomerName;
    }
    [Serializable]
    [DataContract(Namespace = "http://ssbtransport/tests")]
    public class OrderItem
    {
        [DataMember(IsRequired=true)]
        public string ItemDescription;
        [DataMember]
        public int Quantity;
        [DataMember]
        public decimal Amount;
    }
}
